/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package models;
import java.util.*;
import javax.persistence.*;
import play.data.format.*;
import play.data.validation.*; 

import play.db.jpa.*;

@Entity
public class Premio {
    @Id
    @Constraints.Required
    public Integer numPremio;
    @Constraints.Required
    public String descPremio;
    public Integer cantidadPremio;
    public Integer garantiaPremio;
    public Double valorPremio;
    
    @ManyToOne(cascade = CascadeType.MERGE)
    public Sorteo sorteo;
    
    @ManyToOne(cascade = CascadeType.MERGE)
    public Participante participante;
    
    @Transient
    public Integer codigo;
    @Transient
    public Integer numero;
    
    public static Premio findById(Integer numPremio) {
    return JPA.em().find(Premio.class, numPremio);
    }
    
    public void setSorteo(Sorteo s){
        sorteo = s;
    }
    
    public void setParticipante(Participante p){
        participante = p;
    }
    
    public void update(Integer numPremio) {
    this.numPremio= numPremio;
    JPA.em().merge(this);
    }
    
    public void save() {
    System.out.println("Grabando nuevo premio ...");
    JPA.em().persist(this);
    }
    
    public void delete() {
    JPA.em().remove(this);
    } 
    
    public static Page page(){
            List<Premio> premios =  JPA.em().createQuery("from Premio").getResultList();
            return new Page(premios);
        }
           
       
        public static class Page{
            private final List<Premio> list;
            
            public Page(List<Premio> data){
                this.list = data;
            }    
            public  List<Premio> getList(){
                return list;
                
            }
                    
        }
        

}